/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.hl7.v3;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.eclipse.emf.common.util.Enumerator;

/**
 * <!-- begin-user-doc -->
 * A representation of the literals of the enumeration '<em><b>HL7 Standard Version Code</b></em>',
 * and utility methods for working with them.
 * <!-- end-user-doc -->
 * <!-- begin-model-doc -->
 * vocSet: T19373 (C-0-T19373-cpt)
 * <!-- end-model-doc -->
 * @see org.hl7.v3.V3Package#getHL7StandardVersionCode()
 * @model extendedMetaData="name='HL7StandardVersionCode'"
 * @generated
 */
public enum HL7StandardVersionCode implements Enumerator {
	/**
	 * The '<em><b>Act Relationship Expected Subset</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #ACT_RELATIONSHIP_EXPECTED_SUBSET_VALUE
	 * @generated
	 * @ordered
	 */
	ACT_RELATIONSHIP_EXPECTED_SUBSET(0, "ActRelationshipExpectedSubset", "ActRelationshipExpectedSubset"),

	/**
	 * The '<em><b>Act Relationship Past Subset</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #ACT_RELATIONSHIP_PAST_SUBSET_VALUE
	 * @generated
	 * @ordered
	 */
	ACT_RELATIONSHIP_PAST_SUBSET(1, "ActRelationshipPastSubset", "ActRelationshipPastSubset"),

	/**
	 * The '<em><b>Participation Subset</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #PARTICIPATION_SUBSET_VALUE
	 * @generated
	 * @ordered
	 */
	PARTICIPATION_SUBSET(2, "ParticipationSubset", "_ParticipationSubset"),

	/**
	 * The '<em><b>FUTURE</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #FUTURE_VALUE
	 * @generated
	 * @ordered
	 */
	FUTURE(3, "FUTURE", "FUTURE"),

	/**
	 * The '<em><b>LAST</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #LAST_VALUE
	 * @generated
	 * @ordered
	 */
	LAST(4, "LAST", "LAST"),

	/**
	 * The '<em><b>NEXT</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NEXT_VALUE
	 * @generated
	 * @ordered
	 */
	NEXT(5, "NEXT", "NEXT"),

	/**
	 * The '<em><b>FIRST</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #FIRST_VALUE
	 * @generated
	 * @ordered
	 */
	FIRST(6, "FIRST", "FIRST"),

	/**
	 * The '<em><b>FUTSUM</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #FUTSUM_VALUE
	 * @generated
	 * @ordered
	 */
	FUTSUM(7, "FUTSUM", "FUTSUM"),

	/**
	 * The '<em><b>MAX</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #MAX_VALUE
	 * @generated
	 * @ordered
	 */
	MAX(8, "MAX", "MAX"),

	/**
	 * The '<em><b>MIN</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #MIN_VALUE
	 * @generated
	 * @ordered
	 */
	MIN(9, "MIN", "MIN"),

	/**
	 * The '<em><b>RECENT</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #RECENT_VALUE
	 * @generated
	 * @ordered
	 */
	RECENT(10, "RECENT", "RECENT"),

	/**
	 * The '<em><b>PAST</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #PAST_VALUE
	 * @generated
	 * @ordered
	 */
	PAST(11, "PAST", "PAST"),

	/**
	 * The '<em><b>PREVSUM</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #PREVSUM_VALUE
	 * @generated
	 * @ordered
	 */
	PREVSUM(12, "PREVSUM", "PREVSUM"),

	/**
	 * The '<em><b>SUM</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #SUM_VALUE
	 * @generated
	 * @ordered
	 */
	SUM(13, "SUM", "SUM");

	/**
	 * The '<em><b>Act Relationship Expected Subset</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Act Relationship Expected Subset</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #ACT_RELATIONSHIP_EXPECTED_SUBSET
	 * @model name="ActRelationshipExpectedSubset"
	 * @generated
	 * @ordered
	 */
	public static final int ACT_RELATIONSHIP_EXPECTED_SUBSET_VALUE = 0;

	/**
	 * The '<em><b>Act Relationship Past Subset</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Act Relationship Past Subset</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #ACT_RELATIONSHIP_PAST_SUBSET
	 * @model name="ActRelationshipPastSubset"
	 * @generated
	 * @ordered
	 */
	public static final int ACT_RELATIONSHIP_PAST_SUBSET_VALUE = 1;

	/**
	 * The '<em><b>Participation Subset</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Participation Subset</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #PARTICIPATION_SUBSET
	 * @model name="ParticipationSubset" literal="_ParticipationSubset"
	 * @generated
	 * @ordered
	 */
	public static final int PARTICIPATION_SUBSET_VALUE = 2;

	/**
	 * The '<em><b>FUTURE</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>FUTURE</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #FUTURE
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int FUTURE_VALUE = 3;

	/**
	 * The '<em><b>LAST</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>LAST</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #LAST
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int LAST_VALUE = 4;

	/**
	 * The '<em><b>NEXT</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NEXT</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NEXT
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NEXT_VALUE = 5;

	/**
	 * The '<em><b>FIRST</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>FIRST</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #FIRST
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int FIRST_VALUE = 6;

	/**
	 * The '<em><b>FUTSUM</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>FUTSUM</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #FUTSUM
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int FUTSUM_VALUE = 7;

	/**
	 * The '<em><b>MAX</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>MAX</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #MAX
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int MAX_VALUE = 8;

	/**
	 * The '<em><b>MIN</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>MIN</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #MIN
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int MIN_VALUE = 9;

	/**
	 * The '<em><b>RECENT</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>RECENT</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #RECENT
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int RECENT_VALUE = 10;

	/**
	 * The '<em><b>PAST</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>PAST</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #PAST
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int PAST_VALUE = 11;

	/**
	 * The '<em><b>PREVSUM</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>PREVSUM</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #PREVSUM
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int PREVSUM_VALUE = 12;

	/**
	 * The '<em><b>SUM</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>SUM</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #SUM
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int SUM_VALUE = 13;

	/**
	 * An array of all the '<em><b>HL7 Standard Version Code</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static final HL7StandardVersionCode[] VALUES_ARRAY =
		new HL7StandardVersionCode[] {
			ACT_RELATIONSHIP_EXPECTED_SUBSET,
			ACT_RELATIONSHIP_PAST_SUBSET,
			PARTICIPATION_SUBSET,
			FUTURE,
			LAST,
			NEXT,
			FIRST,
			FUTSUM,
			MAX,
			MIN,
			RECENT,
			PAST,
			PREVSUM,
			SUM,
		};

	/**
	 * A public read-only list of all the '<em><b>HL7 Standard Version Code</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static final List<HL7StandardVersionCode> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));

	/**
	 * Returns the '<em><b>HL7 Standard Version Code</b></em>' literal with the specified literal value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static HL7StandardVersionCode get(String literal) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			HL7StandardVersionCode result = VALUES_ARRAY[i];
			if (result.toString().equals(literal)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>HL7 Standard Version Code</b></em>' literal with the specified name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static HL7StandardVersionCode getByName(String name) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			HL7StandardVersionCode result = VALUES_ARRAY[i];
			if (result.getName().equals(name)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>HL7 Standard Version Code</b></em>' literal with the specified integer value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static HL7StandardVersionCode get(int value) {
		switch (value) {
			case ACT_RELATIONSHIP_EXPECTED_SUBSET_VALUE: return ACT_RELATIONSHIP_EXPECTED_SUBSET;
			case ACT_RELATIONSHIP_PAST_SUBSET_VALUE: return ACT_RELATIONSHIP_PAST_SUBSET;
			case PARTICIPATION_SUBSET_VALUE: return PARTICIPATION_SUBSET;
			case FUTURE_VALUE: return FUTURE;
			case LAST_VALUE: return LAST;
			case NEXT_VALUE: return NEXT;
			case FIRST_VALUE: return FIRST;
			case FUTSUM_VALUE: return FUTSUM;
			case MAX_VALUE: return MAX;
			case MIN_VALUE: return MIN;
			case RECENT_VALUE: return RECENT;
			case PAST_VALUE: return PAST;
			case PREVSUM_VALUE: return PREVSUM;
			case SUM_VALUE: return SUM;
		}
		return null;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final int value;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String name;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String literal;

	/**
	 * Only this class can construct instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private HL7StandardVersionCode(int value, String name, String literal) {
		this.value = value;
		this.name = name;
		this.literal = literal;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getValue() {
	  return value;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getName() {
	  return name;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getLiteral() {
	  return literal;
	}

	/**
	 * Returns the literal value of the enumerator, which is its string representation.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		return literal;
	}
	
} //HL7StandardVersionCode
